const Router = require("koa-router");
const login = new Router();
//! 拿到前端传过来的数据  koa-bodyparser
const bodyparser = require("koa-bodyparser");
const jwt = require("jsonwebtoken");
const { secret } = require("../config/config.default.js");
//const db = require("../utils/db");

//! 调用下面这个中间件，就可以拿到前端post过来的数据
login.use(bodyparser());

login.post("/", async (ctx) => {
  console.log(ctx.request.body);
  const { company, software, username } = ctx.request.body;

  // 生成access_token。
  //! 设定access_token的有效期为1天，使用HS256算法与密钥“mysecret”签名。
  const access_token = jwt.sign(
    {
      company,
      software,
      username,
      exp: Math.floor(Date.now() / 1000) + 60 * 60 * 24,
      tag: tags[company],
    },
    secret,
    { algorithm: "HS256" }
  );

  // 生成refresh_token。
  //! 设定refresh_token的有效期为一周，使用HS256算法与密钥“mysecret”签名。
  const refresh_token = jwt.sign(
    {
      company,
      software,
      username,
      exp: Math.floor(Date.now() / 1000) + 60 * 60 * 24 * 7,
      tag: tags[company],
    },
    secret,
    { algorithm: "HS256" }
  );

  ctx.body = {
    access_token,
    refresh_token,
  };
});

module.exports = login;
